<?php
/**
 * @author Fernando
 */

    class Projeto_Texto{
        
        private $codigo;
        private $texto;
        private $titulo;
        private $pagina;
        
        public function __construct(){
            
            $this->codigo = 0;
            $this->texto = '';
            $this->titulo = '';
            $this->pagina - '';
        }
        
        public function setCodigo($value){
            $this->codigo = (int)$value;
        }
        
        public function getCodigo(){
            return $this->codigo;
        }
        
        public function setTexto($value){
            $this->texto = Util_Util::LimpaStringCompleta($value);
        }
        
        public function getTexto(){
            return $this->texto;
        }
        
        public function setTitulo($value){
            $this->titulo = Util_Util::LimpaStringCompleta($value);
        }
        
        public function getTitulo(){
            return $this->titulo;
        }
        
        public function Cadastra(){
            
            $db = new DB_Connect();
            $query = ("INSERT INTO textos
                         (texto, titulo)
                      VALUES
                         ('{$this->getTexto()}', '{$this->getTitulo()}')
                       ");
            if(!$db->Query($query)){
                throw new Exception("Não foi possível realizar o cadastro!");
            }
        }
        
        public function Exclui(){
            
            $db = new DB_Connect();
            $query = ("DELETE FROM textos WHERE codigo = '{$this->getCodigo()}'");
            if(!$db->Query($query)){
                throw new Exception("O texto não pode ser excluido!");
            }else{
                throw new Exception("Texto excluido!");
            }
        }
        
        public function Edita(){
            $db = new DB_Connect();
            $query = ("UPDATE textos SET titulo = '{$this->getTitulo()}', texto = '{$this->getTexto()}' WHERE codigo = '{$this->getCodigo()}'");
            if(!$db->Query($query)){
                throw new Exception("Não foi possivel alterar o texto!");
            }
        }
        
        public function Carrega(){
            $db = new DB_Connect();
            $query = ("SELECT codigo, titulo, texto FROM textos WHERE codigo = '{$this->getCodigo()}'");
            $resultado = $db->Query($query);
            if(!$resultado->NumRows()){
                    throw new Exception("Não foi possivel encontrar o texto!");
            }else{
                $dados = $resultado->FetchObject();
                $this->setCodigo($dados->codigo);
                $this->setTitulo($dados->titulo);
                $this->setTexto($dados->texto);
            }
        }
        
        public function Lista(){
        
            if($this->getTitulo()){
                $str = "titulo = '{$this->getTitulo()}'";
            }else{
                $str = "titulo LIKE '%%'";
            }
            $query = ("SELECT 
                            codigo,
                            titulo,
                            texto
                        FROM 
                            textos
                        WHERE $str
                        ");
            $db = new DB_Connect();
                $result = $db->Query($query);
            if(!$result->NumRows()){
                throw new Exception("Não foram encontrados textos!");
            }else{
                $dados = array();
                while($texto = $result->FetchObject()){
                    $dados[] = $texto;
                }
                return $dados;
            }
        }
    }
?>
